1. Field of the Invention
The present invention relates generally to a Universal Plug and Play (UPnP) and, more particularly, to a method and apparatus for processing a plurality of inputs transmitted by respective input devices when there is a plurality of input devices having built-in UPnP services.
2. Description of the Related Art
Various Human Interface Devices (HIDs) are used to control computing devices such as a Personal Computer (PC), a laptop computer and a Personal Digital Assistant (PDA). The HIDs include a general input device such as a keyboard or a mouse, an input device such as a joystick or a game pad used for games, and an input device such as a stylus for a professional designer. There are numerous input devices according to the purposes of an input device.
To receive input data transmitted by various input devices, a host device should be equipped with various drivers which can receive and interpret inputs of the input devices. When an input device is connected to a host device, the host device interprets and uses input data interpreted by the driver. When a host device does not know which input device is to be connected thereto, it should include all types of device drivers or a user should install a driver suitable for the connected input device.
To solve such a problem, a Universal Serial Bus (USB) has been used which is designed to be easily applied even if a new type of an input device is adopted. The USB divides all input devices used in the market into classes according to types of the input devices. Each class driver manages a specific class device. A class such as an HID transmits a report descriptor which defines a data format to be transmitted by an input device.
The USB input device has an advantage of controlling various input devices using a single port and a class driver. However, the USB input device is restricted to a wired connection. To overcome such a limitation, the Bluetooth Special Interface Group (SIG) and USB standard group have developed standard techniques such as Bluetooth HID profile and wireless USB, thereby providing a method which can wirelessly connect a HID to a host device.
However, the above techniques connect an existing HID to provide a single function and simply extend a conventional wired function to a wireless environment. Moreover, the above techniques do not include functions which can solve problems considered in a wireless or network environment, and fail to provide flexibility for new functions.
Recently, mobile devices such as cellular phones and PDAs are provided with powerful processing capabilities compared with conventional devices and are designed to be able to easily access a wireless network. Based on this trend, the UPnP telephony Working Committee (WC) defines a service which may use one device as an input device of another device to use a network.
Said service is currently supporting a similar function to the Bluetooth HID profile case of mobile devices, but this service is not supporting functions considering the characteristics and examples of mobile devices.
As shown in FIG. 1, a general UPnP input device using UPnP includes two input devices 120 and 130 and an input configuration Control Point (CP) 110. The input devices 120 and 130 include input functions 121 and 131 of an Operating System (OS), input configuration services 122 and 132, and transfer servers/clients 123 and 133. The transfer servers/clients 123 and 133 operate as servers or clients and transmit input information. The input configuration CP 110 discovers the input configuration services 122 and 132 on a network and may set input types and necessary information, which can be processed by each input device and each receiving device. One of the input configuration services 122 and 132 transmits input data and the other thereof receives the input data. The input configuration CP 110 functions to transmit, to each service, a format and transmission method of input data to ensure interoperability between data to be transmitted by a sender and data to be received by a receiver.
Referring to FIG. 2, the input configuration CP 110 receives input capabilities of the input devices 120 and 130 through the input configuration services 122 and 132, in step 210. The input configuration CP 110 determines a receiver and a sender, and determines transport protocols in step 220, based on the received input capabilities. The input configuration CP 110 establishes sessions of the input devices 120 and 130 in steps 230 and 240. The CP 110 starts sessions of the input devices 120 and 130 to start transmission of input data between the two devices in steps 250 and 260.
A USB HID has been widely used for connection of various input devices. When a USB device is inserted into a host device, the host device recognizes each HID through an enumeration process, receives a report descriptor which is a format of input data, and receives the input data through a USB pipe.
The Bluetooth profile is a standard established by the Bluetooth SIG to extend an existing USB HID to a wireless environment. The Bluetooth profile discovers a service through a Service Discovery Protocol (SDP) defined in Bluetooth and transmits data through a Bluetooth data transport channel. A protocol for transmitting data is defined in a Bluetooth HID with reference to a request of a USB and the transmitted data is transmitted to an existing USB class driver.
However, the above-described conventional techniques have the following problems.
First, since only a single input device is considered, there is no reference for simultaneously processing input data when a plurality of input devices is connected. Accordingly, collision may occur between inputs.
Second, in existing input devices, one input device transmits only a determined type of an input. For a UPnP input device, one input device can transmit many types of inputs and even functions to receive inputs. When there are various input devices, since references for simultaneously processing transmitted inputs may differ according to types of input devices, a method for setting different references must be provided for each input type change.